home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / perl5 / Mail / Header.pod < prev    next >
Text File  |  2008-07-29  |  8KB  |  336 lines

  1. =head1 NAME
  2.  
  3. Mail::Header - manipulate MIME headers
  4.  
  5. =head1 INHERITANCE
  6.  
  7. =head1 SYNOPSIS
  8.  
  9.  use Mail::Header;
  10.     
  11.  my $head = Mail::Header->new;
  12.  my $head = Mail::Header->new( \*STDIN );
  13.  my $head = Mail::Header->new( [<>], Modify => 0);
  14.  
  15. =head1 DESCRIPTION
  16.  
  17. Read, write, create, and manipulate MIME headers, the leading part
  18. of each modern e-mail message, but also used in other protocols
  19. like HTTP.  The fields are kept in L<Mail::Field|Mail::Field> objects.
  20.  
  21. Be aware that the header fields each have a name part, which shall
  22. be treated case-insensitive, and a content part, which may be folded
  23. over multiple lines.  
  24.  
  25. Mail::Header does not always follow the RFCs strict enough, does not
  26. help you with character encodings.  It does not use weak references
  27. where it could (because those did not exist when the module was written)
  28. which costs some performance and make the implementation a little more
  29. complicated.  The Mail::Message::Head implementation is much newer
  30. and therefore better.
  31.  
  32. =head1 METHODS
  33.  
  34. =head2 Constructors
  35.  
  36. $obj-E<gt>B<dup>
  37.  
  38. =over 4
  39.  
  40. Create a duplicate of the current object.
  41.  
  42. =back
  43.  
  44. $obj-E<gt>B<new>([ARG], [OPTIONS])
  45.  
  46. Mail::Header-E<gt>B<new>([ARG], [OPTIONS])
  47.  
  48. =over 4
  49.  
  50. ARG may be either a file descriptor (reference to a GLOB)
  51. or a reference to an array. If given the new object will be
  52. initialized with headers either from the array of read from 
  53. the file descriptor.
  54.  
  55. OPTIONS is a list of options given in the form of key-value
  56. pairs, just like a hash table. Valid options are
  57.  
  58.  Option    --Default
  59.  FoldLength  79
  60.  MailFrom    'KEEP'
  61.  Modify      true
  62.  
  63. . FoldLength => INTEGER
  64.  
  65. =over 4
  66.  
  67. The default length of line to be used when folding header lines.
  68. See L<fold_length()|Mail::Header/"Accessors">.
  69.  
  70. =back
  71.  
  72. . MailFrom => 'IGNORE'|'COERCE'|'KEEP'|'ERROR'
  73.  
  74. =over 4
  75.  
  76. See method L<mail_from()|Mail::Header/"Accessors">.
  77.  
  78. =back
  79.  
  80. . Modify => BOOLEAN
  81.  
  82. =over 4
  83.  
  84. If this value is I<true> then the headers will be re-formatted,
  85. otherwise the format of the header lines will remain unchanged.
  86.  
  87. =back
  88.  
  89. =back
  90.  
  91. =head2 "Fake" constructors
  92.  
  93. Be warned that the next constructors all require an already created
  94. header object, of which the original content will be destroyed.
  95.  
  96. $obj-E<gt>B<empty>
  97.  
  98. =over 4
  99.  
  100. Empty an existing C<Mail::Header> object of all lines.
  101.  
  102. =back
  103.  
  104. $obj-E<gt>B<extract>(ARRAY)
  105.  
  106. =over 4
  107.  
  108. Extract a header from the given array into an existing Mail::Header
  109. object. C<extract> B<will modify> this array.
  110. Returns the object that the method was called on.
  111.  
  112. =back
  113.  
  114. $obj-E<gt>B<header>([ARRAY])
  115.  
  116. =over 4
  117.  
  118. C<header> does multiple operations. First it will extract a header from
  119. the ARRAY, if given. It will then reformat the header (if reformatting
  120. is permitted), and finally return a reference to an array which
  121. contains the header in a printable form.
  122.  
  123. =back
  124.  
  125. $obj-E<gt>B<header_hashref>([HASH])
  126.  
  127. =over 4
  128.  
  129. As L<header()|Mail::Header/""Fake" constructors">, but it will eventually set headers from a hash
  130. reference, and it will return the headers as a hash reference.
  131.  
  132. example: 
  133.  
  134.  $fields->{From} = 'Tobias Brox <tobix@cpan.org>';
  135.  $fields->{To}   = ['you@somewhere', 'me@localhost'];
  136.  $head->header_hashref($fields);
  137.  
  138. =back
  139.  
  140. $obj-E<gt>B<read>(FILEHANDLE)
  141.  
  142. =over 4
  143.  
  144. Read a header from the given file descriptor into an existing Mail::Header
  145. object.
  146.  
  147. =back
  148.  
  149. =head2 Accessors
  150.  
  151. $obj-E<gt>B<fold_length>([TAG], [LENGTH])
  152.  
  153. =over 4
  154.  
  155. Set the default fold length for all tags or just one. With no arguments
  156. the default fold length is returned. With two arguments it sets the fold
  157. length for the given tag and returns the previous value. If only C<LENGTH>
  158. is given it sets the default fold length for the current object.
  159.  
  160. In the two argument form C<fold_length> may be called as a static method,
  161. setting default fold lengths for tags that will be used by B<all>
  162. C<Mail::Header> objects. See the C<fold> method for
  163. a description on how C<Mail::Header> uses these values.
  164.  
  165. =back
  166.  
  167. $obj-E<gt>B<mail_from>('IGNORE'|'COERCE'|'KEEP'|'ERROR')
  168.  
  169. =over 4
  170.  
  171. This specifies what to do when a C<`From '> line is encountered.
  172. Valid values are C<IGNORE> - ignore and discard the header,
  173. C<ERROR> - invoke an error (call die), C<COERCE> - rename them as Mail-From
  174. and C<KEEP> - keep them.
  175.  
  176. =back
  177.  
  178. $obj-E<gt>B<modify>([VALUE])
  179.  
  180. =over 4
  181.  
  182. If C<VALUE> is I<false> then C<Mail::Header> will not do any automatic
  183. reformatting of the headers, other than to ensure that the line
  184. starts with the tags given.
  185.  
  186. =back
  187.  
  188. =head2 Processing
  189.  
  190. $obj-E<gt>B<add>(TAG, LINE [, INDEX])
  191.  
  192. =over 4
  193.  
  194. Add a new line to the header. If TAG is C<undef> the the tag will be
  195. extracted from the beginning of the given line. If INDEX is given,
  196. the new line will be inserted into the header at the given point, otherwise
  197. the new line will be appended to the end of the header.
  198.  
  199. =back
  200.  
  201. $obj-E<gt>B<as_string>
  202.  
  203. =over 4
  204.  
  205. Returns the header as a single string.
  206.  
  207. =back
  208.  
  209. $obj-E<gt>B<cleanup>
  210.  
  211. =over 4
  212.  
  213. Remove any header line that, other than the tag, only contains whitespace
  214.  
  215. =back
  216.  
  217. $obj-E<gt>B<combine>(TAG [, WITH])
  218.  
  219. =over 4
  220.  
  221. Combine all instances of TAG into one. The lines will be
  222. joined together WITH, or a single space if not given. The new
  223. item will be positioned in the header where the first instance was, all
  224. other instances of TAG will be removed.
  225.  
  226. =back
  227.  
  228. $obj-E<gt>B<count>(TAG)
  229.  
  230. =over 4
  231.  
  232. Returns the number of times the given atg appears in the header
  233.  
  234. =back
  235.  
  236. $obj-E<gt>B<delete>(TAG [, INDEX ])
  237.  
  238. =over 4
  239.  
  240. Delete a tag from the header. If an INDEX id is given, then the Nth instance
  241. of the tag will be removed. If no INDEX is given, then all instances
  242. of tag will be removed.
  243.  
  244. =back
  245.  
  246. $obj-E<gt>B<fold>([LENGTH])
  247.  
  248. =over 4
  249.  
  250. Fold the header. If LENGTH is not given, then C<Mail::Header> uses the
  251. following rules to determine what length to fold a line.
  252.  
  253. =back
  254.  
  255. $obj-E<gt>B<get>(TAG [, INDEX])
  256.  
  257. =over 4
  258.  
  259. Get the text from a line. If an INDEX is given, then the text of the Nth
  260. instance will be returned. If it is not given the return value depends on the
  261. context in which C<get> was called. In an array context a list of all the
  262. text from all the instances of the TAG will be returned. In a scalar context
  263. the text for the first instance will be returned.
  264.  
  265. The lines are unfolded, but still terminated with a new-line (see C<chomp>)
  266.  
  267. =back
  268.  
  269. $obj-E<gt>B<print>([FILEHANDLE])
  270.  
  271. =over 4
  272.  
  273. Print the header to the given file descriptor, or C<STDOUT> if no
  274. file descriptor is given.
  275.  
  276. =back
  277.  
  278. $obj-E<gt>B<replace>(TAG, LINE [, INDEX ])
  279.  
  280. =over 4
  281.  
  282. Replace a line in the header.  If TAG is C<undef> the the tag will be
  283. extracted from the beginning of the given line. If INDEX is given
  284. the new line will replace the Nth instance of that tag, otherwise the
  285. first instance of the tag is replaced. If the tag does not appear in the
  286. header then a new line will be appended to the header.
  287.  
  288. =back
  289.  
  290. $obj-E<gt>B<tags>
  291.  
  292. =over 4
  293.  
  294. Returns an array of all the tags that exist in the header. Each tag will
  295. only appear in the list once. The order of the tags is not specified.
  296.  
  297. =back
  298.  
  299. $obj-E<gt>B<unfold>([TAG])
  300.  
  301. =over 4
  302.  
  303. Unfold all instances of the given tag so that they do not spread across
  304. multiple lines. If C<TAG> is not given then all lines are unfolded.
  305.  
  306. The unfolding process is wrong but (for compatibility reasons) will
  307. not be repaired: only one blank at the start of the line should be
  308. removed, not all of them.
  309.  
  310. =back
  311.  
  312. =head1 SEE ALSO
  313.  
  314. This module is part of the MailTools distribution,
  315. F<http://perl.overmeer.net/mailtools/>.
  316.  
  317. =head1 AUTHORS
  318.  
  319. The MailTools bundle was developed by Graham Barr.  Later, Mark
  320. Overmeer took over maintenance without commitment to further development.
  321.  
  322. Mail::Cap by Gisle Aas E<lt>aas@oslonett.noE<gt>.
  323. Mail::Field::AddrList by Peter Orbaek E<lt>poe@cit.dkE<gt>.
  324. Mail::Mailer and Mail::Send by Tim Bunce E<lt>Tim.Bunce@ig.co.ukE<gt>.
  325. For other contributors see ChangeLog.
  326.  
  327. =head1 LICENSE
  328.  
  329. Copyrights 1995-2000 Graham Barr E<lt>gbarr@pobox.comE<gt> and
  330. 2001-2007 Mark Overmeer E<lt>perl@overmeer.netE<gt>.
  331.  
  332. This program is free software; you can redistribute it and/or modify it
  333. under the same terms as Perl itself.
  334. See F<http://www.perl.com/perl/misc/Artistic.html>
  335.  
  336.